package cn.ynrcb.personnelfile.admin.entity;

import cn.ynrcb.personnelfile.common.validator.group.AddGroup;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;

/**
 * 协会注册信息表
 *
 * @author wujianfan
 * @email fanxipo@qq.com
 * @date 2022-04-01 14:55:58
 */
@ApiModel(value = "协会注册信息")
@Data
@TableName("tb_register_info")
public class RegisterInfoEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 注册表主键id
     */
    @TableId
    @ApiModelProperty(hidden = true)
    private Long id;
    /**
     * 协会名称
     */
    @ApiModelProperty(value = "协会名称", name = "orgName", required = true, example = "XXX协会")
    @NotNull(message = "协会名称不能为空", groups = {AddGroup.class})
    private String orgName;
    /**
     * 统一社会信用代码
     */
    @ApiModelProperty(value = "统一社会信用代码", name = "creditCode", required = true, example = "1234567798900")
    @NotNull(message = "统一社会信用代码不能为空", groups = {AddGroup.class})
    private String creditCode;
    /**
     * 办公地址
     */
    @ApiModelProperty(value = "办公地址", name = "address", required = true, example = "云南省昆明市五华区XXXXXX")
    @NotNull(message = "办公地址不能为空", groups = {AddGroup.class})
    private String address;
    /**
     * 上级单位名称
     */
    @ApiModelProperty(value = "上级单位名称", name = "parentOrgName", required = true, example = "昆明市委网信办")
    @NotNull(message = "上级单位名称不能为空", groups = {AddGroup.class})
    private String parentOrgName;
    /**
     * 所属行业
     */
    @ApiModelProperty(value = "所属行业名称", name = "industry", required = true, example = "游戏")
    @NotNull(message = "所属行业名称不能为空", groups = {AddGroup.class})
    private String industry;
    /**
     * 联系人
     */
    @ApiModelProperty(value = "联系人名称", name = "contactPerson", required = true, example = "李XX")
    @NotNull(message = "联系人名称不能为空", groups = {AddGroup.class})
    private String contactPerson;
    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号", name = "phone", required = true, example = "17000000000")
    @NotNull(message = "手机号不能为空", groups = {AddGroup.class})
    private String phone;
    /**
     * 座机
     */
    @ApiModelProperty(value = "座机", name = "mobile", required = false, example = "0871-84521412")
    private String mobile;
    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱", name = "email", required = false, example = "asdfjkh@qq.com")
    private String email;
    /**
     * 附件
     */
    @ApiModelProperty(value = "附件", name = "file", required = true, example = "123456.jpg")
    @NotNull(message = "附件不能为空", groups = {AddGroup.class})
    private String file;
    /**
     * 状态
     */
    @ApiModelProperty(hidden = true)
    private Integer status;
    /**
     * 审核状态
     */
    @ApiModelProperty(hidden = true)
    private Integer auditStatus;
    /**
     * 创建时间
     */
    @ApiModelProperty(hidden = true)
    private Date creatTime;
    /**
     * 审核人
     */
    @ApiModelProperty(hidden = true)
    private Long auditUserId;
    /**
     * 审核时间
     */
    @ApiModelProperty(hidden = true)
    private Date auditTime;
    /**
     * 审核备注
     */
    @ApiModelProperty(hidden = true)
    private String auditRemark;

    /**
     * 密码
     */
    @ApiModelProperty(value = "密码", name = "password", example = "Qwert123456", required = true)
    @NotNull(message = "密码不能为空", groups = {AddGroup.class})
    private String password;

    /**
     * 盐值
     */
    @ApiModelProperty(hidden = true)
    private String salt;

    /**
     * 短信验证码
     */
    @ApiModelProperty(value = "短信验证码", name = "smsCode", example = "12345", required = true)
    @NotNull(message = "短信验证码不能为空", groups = {AddGroup.class})
    @TableField(exist = false)
    private String smsCode;

    /**
     * 附件list
     */
    @ApiModelProperty(hidden = true)
    @TableField(exist = false)
    private ArrayList<Object> fileList;

    @ApiModelProperty(value = "协会编号", name = "coding", required = false, example = "FDC")
    private String coding;
}
